Basic認証付きのPiping Serverを立てる方法
やりたいこと
具体的にはDocker Compose を使って Caddy で Basic認証 対応させる。
使い方
以下のコマンドを叩けばDocker ComposeでBasic認証付きのPiping Serverが立ち上がる。
code:console
$ git clone https://github.com/nwtgck/piping-server-basic-auth-docker-compose.git
$ cd piping-server-basic-auth-docker-compose/
$ cd caddy
$ docker-compose up
あとは以下をブラウザで開く。
動作
ユーザ名は user1
パスワードは 1234
一度入力して認証が成功するとブラウザが自動的に覚えてくれるので2度目以降のアクセスは入力せずに済む。
https://gyazo.com/3b0c63b4ceb9b19d8da50ab8ab82c1ec
curlを使うならcurl -u user1:1234 ...でBasic認証できる。
公開するサーバーでBasic認証を使うならHTTPSを使いたくなる。CaddyだとLet's Encryptでの証明書の取得と自動更新をやってくれるので手軽。
自分好みにカスタマイズする
この場所()にCaddyfileがある。
basicauth / user1 1234でユーザー名やパスワードを変更できる。
code:Caddyfile
0.0.0.0:80 {
# Basic Authentication
basicauth / user1 1234
proxy / piping:80 {
header_upstream Host {host}
}
}
以下にCaddyfileでのBasic認証の他の書き方が載っている。
http.basicauth - Caddy User Guide
今後
Caddy以外にHAProxyなどの他のリバースプロキシでもBasic認証対応する方法を追加していきたい。